草庐IT

Android AsyncTask 内存泄漏

全部标签

java - 为什么从命令行运行的可执行 jar 比从 Eclipse 运行的同一项目使用更多的内存?

为什么从命令行运行的可执行jar比从Eclipse运行的同一项目使用更多的RAM-在我的例子中大约多7倍?在开发项目时,我从Eclipse(运行->运行)运行应用程序,它使用了大约60mb(我查看了刚刚创建的javaw.exe进程)的ram,而如果我创建一个可执行JAR并从命令运行它行(Windows)ram使用量约为450mb。此外,与从Eclipse的运行->运行相比,从命令行运行时ram使用变化的幅度更大。 最佳答案 这可能与Eclipse启动应用程序时使用的JVM设置有关。启动Jar时,Java将根据内存做出最佳猜测以使用哪

java - 使用C++编写的Java读取共享内存数据

我有一个C/C++应用程序,它在Unix的共享内存中写入数据。现在我想通过使用Java的程序读取共享内存数据。程序应该读取共享内存数据。有可能吗?如果可能,需要一个小的实现。 最佳答案 看看thiscodeproject项目(对于Windows):UsingMemoryMappedFilesandJNItocommunicatebetweenJavaandC++programs或者,this图书馆:CLIPCisanopen-sourceJavalibrarythatgivesdevelopersinterprocesscommun

java - 这是java内存泄漏吗

更新:看起来这不是内存泄漏,有人会基于这个例子的扩展创建吗?原问题:假设我创建并启动了一个不会终止的线程,只要它还活着,该线程就会创建一个对象和引用。请参见以下代码。JVM会收集垃圾x吗?这会被视为内存泄漏吗?publicclassMyRunnableimplementsRunnable{publicvoidrun(){Xx=newX();while(true){}}}Threadt=newThread(newMyRunnable());t.start(); 最佳答案 线程永远不会终止,所以垃圾收集器永远不会释放x。但是,如果您从未

java - 在 Spring MVC 应用程序中查找内存泄漏

我最近做了thistutorial并让代码运行良好。然后,今天,我在Eclipse中重新打开项目并选择RunAs...RunonServer。从Eclipse控制台中运行的日志来看,该应用程序似乎经历了正常的加载过程,但是当我期望该应用程序改为在浏览器中加载时,Eclipse控制台中出现了以下错误消息:Exceptioninthread"http-bio-8080-exec-3"java.lang.OutOfMemoryError:PermGenspace我也确实运行了来自thistutorial的代码之前,并打开了一些blob文件,但我不认为这是导致问题的原因,因为即使我关闭所有内容

java - C# 结构内存优化?

我参加了试用期面试(?我不确定是不是这个词)面试官让我告诉他结构和类之间的区别是什么。所以我告诉他我知道的一切以及我在msdn上看到的一切。那家伙说“还不够”,我一点头绪都没有。于是他说:struct是优化过的,所以如果有integer和float,有一些位相同,那么它会节省这个空间,所以structwithint=0和float=0是int=int.MAX的一半大小,float=float.MIN.好的。所以我当时想-没听说过。但是,在面试之后我在考虑它,但它对我来说并没有什么意义。这意味着,当我们更改其中某个变量的值时,结构大小会有所不同。而且在内存中也不可能真的在同一个地方,万一

Java枚举,如何以及何时为每个常量分配内存

我有如下所示的简单枚举类。我想知道内存是如何分配给每个常量的(是否为每个常量创建了成员类对象)以及它的范围是什么。publicenumMember{HAPPY("HAPPY"),RAhul("RAhul"),ANSAL("ANSAL");privateStringargument;Member(Stringarguments){System.out.println("EnumConstructorwork");this.argument=arguments;}publicStringgetValue(){returnargument;}} 最佳答案

java - Apache Spark - 内存异常错误 - IntelliJ 设置

当我尝试运行使用ApacheSpark的测试时,我遇到了以下异常:Exceptionencounteredwheninvokingrunonanestedsuite-Systemmemory259522560mustbeatleast4.718592E8.Pleaseusealargerheapsize.java.lang.IllegalArgumentException:Systemmemory259522560mustbeatleast4.718592E8.Pleaseusealargerheapsize.我可以通过更改配置中的vm选项来绕过错误,使其具有:-Xms128m-Xmx

java - 原语是否分配了内存地址?

我试图理解一个原始类型在后台的声明和赋值过程。inti;i=3;对于1),在内存栈上分配了一block空间,用来存放一个名为i的int类型值对于2),它把值3赋给上面保留的空间那里有内存地址吗?在我的印象中,内存地址总是与堆上的对象相关联?更新:关于回复:因此,对于堆栈上的每个变量,它们都被分配了一个内存地址,就像堆上的对象一样。我说得对吗?但是对于Java,不是这样的吗? 最佳答案 并不总是涉及地址。如果编译器发现它们的地址从未被程序员使用,则编译器可以将变量放入寄存器。所以你不需要访问主内存。例如,在您上面的代码中,编译器可以生

java - 监控不同java对象的内存消耗

如果我们在一个应用程序中有300个类,是否可以监控在给定时间我们有多少个类的实例?是否可以知道每个实例消耗了多少内存?谢谢 最佳答案 JDK1.6包含一个名为jvisualvm的工具,它允许您查看有关正在运行的Java程序的大量信息,包括内存使用情况、线程等。您还可以使用分析器来查看此类信息。NetBeans中的探查器看起来很像JVisualVM。 关于java-监控不同java对象的内存消耗,我们在StackOverflow上找到一个类似的问题: https

java - 声明静态 ApplicationContext 会导致内存泄漏吗? ( Spring 3)

我有我正在使用的来自另一个团队的代码,我花了几天时间试图追踪我的应用程序中可疑的内存泄漏。几次redploy后我收到OutOfMemory错误。我使用了多种工具来追踪泄漏,包括YourKitJavaProfiler和IBM的SupportAssisantMemoryAnalyzer。我的应用程序是一个在WebSphere6.1上运行的Spring3.0.5J2EE应用程序,使用spring-mvc注释驱动Controller。我所做的大部分研究都指向一个我觉得非常可疑的类,我们将其称为MyFactory,它看起来像这样:importorg.springframework.context